#include "../lib/timer0.h"
#include "accelero.h"
//include ADC, Timer0

void (*p_alerte)()=0; //pointeur sur la fonction d'alerte a executer
int angle;

//regarde toutes les mili par defaut
void init_accelero_defaut(int nvo_inter,int angle_alerte,void (*fonc_alerte))
{
	//sauve la fonction et l'angle pour les avoir en global
	p_alerte=fonc_alerte;
	angle=angle_alerte;
	
	//lance l'init du timer qui va lancer inter_acce toutes les periode
	init_timer0_periode(7,1000,nvo_inter,(void *)inter_acce);

	//init_ADC
}



void init_accelero_custom_periode(int resolution, long periode, int nvo_inter,int angle_alerte,void (*fonc_alerte))
{
	//sauve la fonction et l'angle pour les avoir en global
	p_alerte=fonc_alerte;
	angle=angle_alerte;
	
	//lance l'init du timer qui va lancer inter_acce toutes les periode
	init_timer0_periode(periode, nvo_inter,(void *)inter_acce);

	//init_ADC
}

void init_accelero_custom_reload(int resolution,int reload,int nvo_inter,int angle_alerte,void (*fonc_alerte))
{
	//sauve la fonction et l'angle pour les avoir en global
	p_alerte=fonc_alerte;
	angle=angle_alerte;
	
	//lance l'init du timer qui va lancer inter_acce toutes les periode
	init_timer0_reload(resolution,reload,nvo_inter,(void *)inter_acce);

	//init_ADC
}


void inter_acce()//
{
	double val[2];
	//val=recup_ADC();

	//si alerte
	if(calcul_angle(val)>angle)
	{
		//execute la fonction d'alerte
			if(p_alerte!=0)	  //au cas ou...
			{
				//exectute la fonction d'alerte
			    (*p_alerte)();
			}
			else
			{
				 //ecrire erreur sur sortie
			}
	}

}


int calcul_angle(double val[2])
{
//plein de trigo

}
